#include <sys\types.h>
#include <sys\stat.h>
#include <io.h> требуется только для объявления функций.
int creat(pathname, pmode);
char *pathname; path-имя нового файла
int pmode; разрешенный режим доступа
Описание.
Функция creat либо создает новый файл, либо открывает и обновляет (усекает до длины 0) существующий файл. Если существует файл, определяемый path-именем, то создается новый файл с заданным режимом доступа и являющийся открытым для записи. Если файл существует и его режим доступа позволяет запись, тогда функция creat усекает файл к длине 0, уничтожая все содержимое, и одновременно открывает файл.
Разрешенный режим доступа - pmode - применяется только для вновь созданных файлов. Новый файл получает установленный режим доступа после первого его закрытия. Целое выражение pmode состоит из одной или нескольких манифестных констант - S_IWRITE и S_IREAD, объявленных в <sys\stat.h>. Если задаются обе константы, они объединяются при помощи логического OR (:). Значение аргумента pmode приводится ниже.
КОНСТАНТА СМЫСЛОВОЕ ЗНАЧЕНИЕ S_IWRITE разрешает запись S_IREAD разрешает чтение S_IREAD:S_IWRITE разрешают чтение и запись
Если запись не разрешена, файл предназначен только для чтения. В MS DOS нельзя разрешить только запись. Поэтому режимы S_IWRITE и S_IREAD: S_IWRITE являются эквивалентными.
В версиях MS DOS 3.0 и старших файлы, открываемые при помощи creat, всегда открываются в совмещенном режиме (compatibility mode).
Функция creat перед установкой флага доступа присваивает pmode маске доступа (подробно об этом смотрите umask).
Возвращаемое значение.
В случае успешного вызова эта функция возвращает handle на созданный файл. Возвращаемое значение -1 свидетельствует об ошибке; errno устанавливается в одно из следующих значений:
ВОЗВРАЩАЕМАЯ СМЫСЛОВОЕ ЗНАЧЕНИЕ
ВЕЛИЧИНА
EACCES Path-имя определяет существующий
файл только для чтения или
определяет директорий вместо файла
EMFILE другие handle-ры файла не пригодны,
т.к. много открытых файлов
ENOENT path-имя не найдено.
Замечание.
Процедура create обеспечивает первоначальную совместимость с предыдущими библиотеками. Вызов open при помощи значений O_CREAT и O_TRUNC, определенных в аргументе oflag, является зквивалентным и предпочтительным для нового кода.
Пример:
#include <sys\types.h>
#include <sys\stat.h>
#include <io.h>
#include <stdlib.h>
int fh;
fh = creat("data", S_IREAD|S_IWRITE);
if (fh == -1)
perror("Couldn't create data file");